iT邦幫忙

2023 iThome 鐵人賽

DAY 15
0
Software Development

Laravel專案練習-寶可夢管理系統系列 第 15

Day15:寶可夢專案-虛擬伺服器軟體安裝-https設定-安裝步驟

  • 分享至 

  • xImage
  •  

安裝步驟:

1. 購買域名

什麼是域名?

  • 域名是網站的網址,例如 www.example.com。就是讓我們好記好辨別,像ip這種數字對於我們人類來說比較不好記而且也沒辦法代表這個網站,比如說像www.google.com就很清楚的知道我要訪問的事google的網站,但實際上,網站是由IP地址來定位的。
  • 根據整個域名的結構可以分成
    1. **頂級域名(TLD)www.example.com中的.com**是頂級域名。頂級域名有好幾種類型,像是:
      • 通用頂級域名(gTLD),例如:.com、.net、.org。
      • 國家代碼頂級域名(ccTLD),例如:.cn(中國)、.jp(日本)、.uk(英國)。
    2. **次級域名(Second-Level Domain)www.example.com中的example**是次級域名。這部分通常由企業、組織或個人註冊,用於標識其網站。
    3. **子域名(Subdomain)www.example.com中的www**是子域名。子域名用於組織網站的各個部分。例如,blog.example.com可能用於托管網站的博客部分。
  • 那如果網站是由IP地址來定位的,我們要怎麼把ip轉換成域名呢? 就是透過DNS

什麼是DNS?

DNS (Domain Name System) 是一個將域名轉換為IP地址的系統。

  • 整個過程會像是
    1. 地緩存查找
      首先,瀏覽器和作業系統會檢查其本地緩存,看看它們是否已經知道該域名的IP地址。
    2. 向本地DNS伺服器發送查詢請求
      如果本地緩存中沒有記錄,瀏覽器會向配置的本地DNS伺服器發送查詢請求。
    3. 递归查询
      本地DNS伺服器會進行一系列的查詢,這被稱為递归查询。它會查詢根DNS伺服器,根DNS伺服器將其指向相應的TLD伺服器,TLD伺服器再指向負責該域名的授權DNS伺服器。
    4. 授權DNS伺服器
      授權DNS伺服器會返回該域名的IP地址。
    5. 緩存和回應
      得到的IP地址將被存儲在本地DNS伺服器的緩存中,用於未來的查詢。然後,本地DNS伺服器將IP地址返回給瀏覽器。

使用go daddy購買域名

  • 有多間公司提供購買網域及DNS的服務,我目前使用的是go daddy。

    關於他的使用及如何計價官網寫得這裡就不多說了。

  • 這裡需要注意的是,要記得去設定DNS,go daddy有提供這個服務,可以去DNS的地方點選DNS紀錄,去設定對應的ip。

2. 選擇證書公司

  • 在選擇SSL證書提供商時,重要的是要選擇一家具有良好信譽和提供技術支援的公司。
  • 有一些知名的證書提供商如Let’s Encrypt,提供免費的SSL證書,不過他提供的是DV等級的證書。

SSL證書的等級

一般來說,SSL證書可以分為三個主要的等級:

  1. Domain Validation (DV)證書
    • 驗證層級:低
    • 驗證內容:僅驗證域名所有權
    • 獲取時間:快
    • 用途:適合小型網站和個人博客
    • 價格:便宜或免費,例如Let's Encrypt提供的是免費的DV證書
  2. Organization Validation (OV)證書
    • 驗證層級:中
    • 驗證內容:驗證域名所有權和組織信息
    • 獲取時間:中等
    • 用途:適合中大型企業和電子商務網站
    • 價格:中等價格
  3. Extended Validation (EV)證書
    • 驗證層級:高
    • 驗證內容:驗證域名、組織信息和法律地位
    • 獲取時間:較長
    • 用途:適合大型企業、金融機構和需要高信任度的網站
    • 價格:較昂貴

3. 申請證書

根據證書提供商的指南進行申請。通常需要生成一個CSR (Certificate Signing Request) 文件並提交給證書提供商。

而實際上的過程其實可以安裝Let’s Encrypt套件

  1. 安裝Certbot
    Certbot是Let's Encrypt推薦的客戶端軟件。在大多數的Linux發行版中,您可以使用包管理器安裝Certbot。

    
    sudo apt-get update sudo apt-get install certbot
    
    
    1. 运行Certbot

      
      sudo certbot --nginx
      
      
    2. 选择域名
      在运行该命令后,Certbot会列出Nginx配置中的所有域名,并让您选择为哪些域名安装证书。

    3. 验证域名所有权
      Certbot会自动进行域名所有权验证,通常是通过修改Nginx的配置来响应HTTP挑战,证明您拥有该域名。

    4. 安装和配置SSL证书
      一旦验证成功,Certbot会自动获取SSL证书,并修改Nginx的配置文件以使用新证书。它还会设置HTTP到HTTPS的重定向。

    5. 以下是套件幫我自動做的設定

      listen 443 ssl; # managed by Certbot
      ssl_certificate /etc/letsencrypt/live/wade.monster/fullchain.pem; # managed by Certbot
      ssl_certificate_key /etc/letsencrypt/live/wade.monster/privkey.pem; # managed by Certbot
      include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
      ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
      
      if ($host = wade.monster) {
          return 301 https://$host$request_uri;
      } # managed by Certbot
      
      listen 80;
      server_name wade.monster www.wade.monster;
      return 404; # managed by Certbot
      
      

      主要就是說如果我今天沒有用https去訪問我這個網站他會自動幫我重定向回對方瀏覽器,並要求建立https連接。

結語:

部署HTTPS不僅能保護網站和用戶的資訊安全,還能提高網站的可信度和SEO排名。雖然過程可能稍有複雜,但對於任何較嚴謹的網站來說,都是值得的。


上一篇
Day14 寶可夢專案-部署練習-https設定-https基本介紹
下一篇
Day16:寶可夢專案-寶可夢資料庫的建立-寶可夢資料的儲存-本地or不存
系列文
Laravel專案練習-寶可夢管理系統30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言